#include <iostream>
#include <string>
#include <map>

using namespace std;

bool isPrime(int num) {
  if (num <= 1) return false;
  for (int i = 2; i * i <= num; i++) {
    if (num % i == 0) return false;
  }
  return true;
}

int main() {
  string input;
  getline(cin, input);

  // Удаляем пробелы в конце строки
  input.erase(input.find_last_not_of(" \t\r\n") + 1); 

  map<string, int> numberMap = {
    {"zero", 0}, {"one", 1}, {"two", 2}, {"three", 3}, {"four", 4},
    {"five", 5}, {"six", 6}, {"seven", 7}, {"eight", 8}, {"nine", 9}
  };

  // Разделяем строку на слова
  int i = 0;
  size_t pos = 0;
  string words[3]; // Объявляем массив внутри цикла
  while (i < 3 && pos < input.length()) { // Цикл завершается, когда найдено 3 слова или конец строки
    size_t nextPos = input.find(' ', pos);
    if (nextPos == string::npos) { // Если не найден пробел, то это последнее слово
      nextPos = input.length(); 
    }
    words[i++] = input.substr(pos, nextPos - pos);
    pos = nextPos + 1; // Переход к следующему слову
  }

  // Проверяем, что было введено ровно 3 слова
  if (i != 3) { 
    cout << "Wrong input" << endl;
    return 1;
  }

  // Проверяем, что все слова - это числа
  for (int j = 0; j < 3; j++) {
    if (numberMap.find(words[j]) == numberMap.end()) {
      cout << "Wrong input" << endl;
      return 1;
    }
  }

  int number = numberMap[words[0]] * 100 + numberMap[words[1]] * 10 + numberMap[words[2]];

  // Проверяем, что число натуральное и трехзначное
  if (number <= 0 || number < 100 || number > 999) { 
    cout << "Wrong input" << endl;
    return 0;
  }

  int closestPrime = 0, lower = number, higer = number;
  bool found = false;
  while (!found) {
    
    if (isPrime(higer)) {
      found = true;
      closestPrime = higer;
    } else {
      higer++;
    }
    if (isPrime(lower)) {
      found = true;
        closestPrime = lower;
    } else {
      lower--;
    }
  }

  cout << closestPrime << endl;
  return 0;
}
